// 同步模式
console.log('global begin')

function bar () {
    console.log('bar task')
}
function foo () {
    console.log('foo task')
    bar()
}

foo()

console.log('global end')

// global beigin
// foo task
// bar task
// global end
// 同步模式  如果在过程中有一个任务出现耗时过长   这种耗时称之为堵塞
// 这种情况  我们需要异步模式来处理这种阻塞


// 异步模式
// setTimeout 不受js线程池影响
// Event loop 监听调用栈和消息队列
console.log('global begin')

setTimeout(function timer1 () {
    console.log('timer1 invoke')
}, 1800)
setTimeout(function timer2 () {
    console.log('timer2 invoke')
    setTimeout(function inner () {
        console.log('inner invoke')
    }, 1000)
}, 1000)

console.log('global end')

// global beigin
// global end
// timer2 invoke 1s
// timer1 invoke 1.8s
// inner invoke  2s
